package com.jy.wms.service;

import com.alibaba.fastjson.JSONArray;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.jy.wms.common.annotions.BaseServiceDescribe;
import com.jy.wms.common.base.BaseService;
import com.jy.wms.common.base.ServiceException;
import com.jy.wms.common.base.SucessException;
import com.jy.wms.dao.WmsGoodsTypeMapper;
import com.jy.wms.pojo.SysDictionary;
import com.jy.wms.pojo.WmsGoodsType;
import com.jy.wms.pojo.WmsrRailwayPlatform;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
* @ClassName: WmsGoodsTypeService.java
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author JaneLiu
* @Date Mon Sep 04 14:25:45 CST 2017
*/

@Service
public class WmsGoodsTypeService extends BaseService<WmsGoodsTypeMapper,WmsGoodsType> {

 /**
 * 插入一条记录
 * @param entity 实体对象
 * @return int
 */
 @BaseServiceDescribe(moduleName = "货品种类",btnName = "货品种类添加")
public void baseInsert( WmsGoodsType entity) throws SucessException,ServiceException {
     int getCounts=dao.getcount(entity.getMc(),entity.getSshzid(),null);//查询该货主下有无相同货品种类名称
     if (getCounts==0){
         int i = dao.baseInsert(entity);
         SysDictionary sysDictionary = getSysdictionary("wms_goods_type_sfyx", entity.getSfhf());
         entity.setShow_sfhf(sysDictionary.getD_name());
         if (i > 0) {
             throw new SucessException("货品种类添加成功");
         } else {
             throw new ServiceException("货品种类添加失败");
         }
     }else {
         throw new ServiceException("相同货主下货品种类名称不能重复添加");
     }
     }
/**
* 插入一条记录（匹配有值的字段）
* @param entity 实体对象
* @param database 数据库名称
* @return int
*/
public Integer baseInsertSelective( WmsGoodsType entity,String database ){
     return dao.baseInsertSelective( entity,database );
}

/**
* 删除（根据主键ID删除）
* @param id 主键
* @param database 数据库名称
* @return int
*/
public Integer baseDeleteByPrimaryKey( String id,String database ){
     return dao.baseDeleteByPrimaryKey( id,database );
}

/**
* 删除（根据ID 批量删除）
* @param idList 主键ID列表
* @param database 数据库名称
* @return int
*/
public Integer baseDeleteBathPrimaryKeys( List<String> idList,String database ){
     return dao.baseDeleteBathPrimaryKeys( idList,database );
}

/**
* 分页查询
* @param entity 实体
* @return Page<WmsGoodsType>
*/
@BaseServiceDescribe(moduleName = "货品种类",btnName = "分页查询")
public Page<WmsGoodsType> baseSelectPage(WmsGoodsType entity) throws Exception{
    Page<WmsGoodsType> list=null;
    try {
        PageHelper.startPage(entity.getPage(),entity.getRows());
        list=(Page<WmsGoodsType>)dao.baseSelectPage(entity);
        return list;
    }catch (Exception e){
        throw new ServiceException("货品种类查询失败",e);
    }
}

/**
* 查询（根据主键ID查询）
* @param id 主键ID
* @param database 数据库名称
* @return WmsGoodsType
*/
public WmsGoodsType baseSelectByPrimaryKey( String id,String database ){
     return dao.baseSelectByPrimaryKey( id,database );
}

/**
* 查询（根据ID 批量查询）
* @param idList 主键ID列表
* @param database 数据库名称
* @return list
*/
public Integer baseSelectBathPrimaryKeys( List<WmsGoodsType> idList,String database ){
     return dao.baseSelectBathPrimaryKeys( idList,database );
}

/**
*修改 （匹配有值的字段）
* @param entity 主键ID列表
* @param database 数据库名称
* @return int
*/
public Integer baseUpdateByPrimaryKeySelective( WmsGoodsType entity,String database ){
     return dao.baseUpdateByPrimaryKeySelective( entity,database );
}

/**
*修改（根据主键ID修改）
* @param entity 主键ID列表
* @param database 数据库名称
* @return int
*/
public Integer baseUpdateByPrimaryKey( WmsGoodsType entity, String database ){
     return dao.baseUpdateByPrimaryKey( entity,database );
}/**
     * 查询（根据货主ID查询）
     * @param sshzid 货主ID
     * @param mc 货品种类名称
     * @return WmsGoodsType
     */
    @BaseServiceDescribe(moduleName = "用户管理",btnName = "根据id查询货品种类")
    public List<WmsGoodsType> baseSelectBySshzid( String sshzid,String mc,String ckid){
        return dao.baseSelectBySshzid(sshzid,mc,ckid);
    }

    /**
     * 查询字典
     * @return
     */
    public @ResponseBody
    SysDictionary getSysdictionary(String type, String value) {
        JSONArray jsonArray = new JSONArray();
        SysDictionary sysDictionary = dao.baseSelectByType(type,value);
        return sysDictionary;
    }

}
